home *** CD-ROM | disk | FTP | other *** search
- #include <stdio.h>
- #include <errno.h>
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <fcntl.h>
- #include <unistd.h>
- #include <string.h>
- #include <forms.h>
- #include <apm.h>
- #include "xbatstat.h"
-
- int main(int argc, char *argv[])
- {
- apm_info i;
- char buf[10], *p;
-
- switch (apm_exists()) {
- case 1: fprintf( stderr, "No APM support in kernel\n" ); exit( 1 );
- case 2: fprintf( stderr, "Old APM support in kernel\n" ); exit( 2 );
- }
-
- fl_initialize(argv[0],"xbatstat",0,0,&argc,argv);
- create_form();
-
- while(1) {
-
- apm_read( &i );
-
- fl_set_slider_value(apm_life, i.battery_percentage);
- fl_set_object_label(apm_status, p);
- fl_set_object_label(apm_batt, p);
-
- if (i.ac_line_status == 1){
- p = "Online";
- fl_set_object_lcol(apm_status,FL_YELLOW);
- } else {
- p = "Offline";
- fl_set_object_lcol(apm_status,FL_BLACK);
- }
- fl_set_object_label(apm_status, p);
-
- sprintf( buf, "%d%%", i.battery_percentage );
- p = buf;
- fl_set_object_label(apm_batt, p);
-
- fl_check_forms();
-
- sleep(1);
- }
-
- }
-
- void create_form(void)
- {
- apm_form = fl_bgn_form(FL_NO_BOX, 45, 45);
-
- apm_life = fl_add_slider(FL_HOR_FILL_SLIDER,0,0,45,15,"");
- fl_set_object_boxtype(apm_life,FL_FRAME_BOX);
- fl_set_object_color(apm_life,FL_COL1,FL_SLATEBLUE);
- fl_set_object_lcol(apm_life,FL_BLACK);
- fl_set_object_lalign(apm_life,FL_ALIGN_RIGHT);
- fl_set_slider_bounds(apm_life, 0, 100);
-
- apm_status = fl_add_text(FL_NORMAL_TEXT,0,30,45,15,"Status");
- fl_set_object_boxtype(apm_status,FL_FRAME_BOX);
- fl_set_object_lsize(apm_status,FL_TINY_SIZE);
- fl_set_object_lalign(apm_status,FL_ALIGN_CENTER);
- fl_set_object_lstyle(apm_status,FL_NORMAL_STYLE);
-
- apm_batt = fl_add_text(FL_NORMAL_TEXT,0,15,45,15,"Life");
- fl_set_object_boxtype(apm_batt,FL_FRAME_BOX);
- fl_set_object_lsize(apm_batt,FL_SMALL_SIZE);
- fl_set_object_lalign(apm_batt,FL_ALIGN_CENTER);
- fl_set_object_lstyle(apm_batt,FL_ITALIC_STYLE+FL_EMBOSSED_STYLE);
-
- fl_end_form();
- fl_set_form_position(apm_form, 591, 431);
- fl_show_form(apm_form, FL_PLACE_GEOMETRY, FL_TRANSIENT, "xbatstat");
- }
-
-